const express = require('express'); // 1. 引用express框架
const logger = require('morgan') // 日志模块
const favicon = require('serve-favicon') // 网站图标

const userRouter = require('./routes/userRouter') // 引用自定义的模块，必须以"./"开头

const app = express(); // 把express对象，当函数调用后，返回一个应用程序的服务器对象给app。
//服务器的配置：
app.use(logger('dev')) // 'dev',在服务器运行时，显示访问的日志的格式。

// 处理POST请求的配置：
app.use(express.json({ limit: '1024kb' })) // 处理参数是json对象格式时
app.use(express.urlencoded({ extended: true }))//处理参数是普通表达请求格式：?key=val&key2=val2;

// 简单对象： {a:1,b:2,x:12,y:22}
//复杂对象： {a:{x:1,y:2},b:[1,2,3],c:1}, 只能使用qs库，才可以完全解析为application/x-www-form-urlencode编码的风格。
// extended: true ,使用qs库来解析客户端传的参数。
// extended: fasle ,使用querysting库来解析客户端传的参数。


// 一般把路由配置到静态资源的后面的，但是也可能会由列外。需要放到静态资源之前去。
app.use("/", userRouter)

// 静态资源的访问目录，可以配置多个不同的目录
app.use(express.static(__dirname + "/public"))



// 自定义网站小图标，或者直接在public下放一个favicon.ico文件。
app.use(favicon(__dirname + '/public/icon/icon.webp')) // __dirname, 表示项目的根目录，/myapp + '/public/icon/icon.webp'

app.listen(8888, () => {
  console.log(`按ctrl + 单击访问: http://127.0.0.1:8888`);
})